]> dgit.raspbian.org Git - gnome-shell.git/log
gnome-shell.git
9 months agoUpdate Norwegian Bokmål translation
Kjartan Maraas [Thu, 8 Jan 2026 23:13:11 +0000 (23:13 +0000)]
Update Norwegian Bokmål translation

9 months agoUpdate Norwegian Bokmål translation
Kjartan Maraas [Thu, 8 Jan 2026 23:09:01 +0000 (23:09 +0000)]
Update Norwegian Bokmål translation

9 months agoUpdate Kazakh translation
Baurzhan Muftakhidinov [Thu, 8 Jan 2026 16:11:17 +0000 (16:11 +0000)]
Update Kazakh translation

10 months agoUpdate Romanian translation
Antonio Marin [Tue, 6 Jan 2026 22:13:16 +0000 (22:13 +0000)]
Update Romanian translation

10 months agoUpdate Romanian translation
Antonio Marin [Tue, 6 Jan 2026 13:48:16 +0000 (13:48 +0000)]
Update Romanian translation

10 months agoUpdate Uzbek (Latin) translation
Baxrom Raxmatov [Wed, 24 Dec 2025 14:42:53 +0000 (14:42 +0000)]
Update Uzbek (Latin) translation

10 months agoUpdate Portuguese translation
Hugo Carvalho [Sat, 20 Dec 2025 11:00:54 +0000 (11:00 +0000)]
Update Portuguese translation

11 months agoUpdate Romanian translation
Antonio Marin [Sun, 30 Nov 2025 17:41:16 +0000 (17:41 +0000)]
Update Romanian translation

11 months agoBump version to 49.2
Florian Müllner [Sat, 22 Nov 2025 02:20:48 +0000 (03:20 +0100)]
Bump version to 49.2

Update NEWS.

11 months agomessageList: Check if Message is expanded
SymphonySimper [Sat, 22 Nov 2025 13:01:05 +0000 (18:31 +0530)]
messageList: Check if Message is expanded

Check if Message is expanded in expand method, to prevent rerunning the
expand animation when it's already expanded

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3978>
(cherry picked from commit 2f08a95b1efdef83a48e3d261937469070967d0a)

11 months agoscreenShield: Emit ::screen-lock-shown early with animated fades
Carlos Garnacho [Fri, 21 Nov 2025 13:46:03 +0000 (14:46 +0100)]
screenShield: Emit ::screen-lock-shown early with animated fades

If the screen is locked with animatedFade parameter enabled, the
screenShield currently defers the emission of this signal until the
lightbox toggles on. However the lightbox might be prevented from
ever doing that by later input.

If this emission is delayed enough, it will result in ShellDBus
missing the D-Bus timeout for replying to the Lock request, since
it does rely on this signal being emitted in order to reply back.

It does however make sense to keep setting the active state after
the animation, so the inhibitors are synchronized at the point the
lightbox kicks in.

Closes: https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/8644
Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3971>
(cherry picked from commit 7f84efb1edd652e55441c48af14d19d7d6b15b4e)

11 months agodash: Fix wrong separator position
Raghuveer Kasaraneni [Sun, 5 Sep 2021 08:33:18 +0000 (10:33 +0200)]
dash: Fix wrong separator position

The separator position takes drag placeholders into account, but not
any removed favorites that are currently animating out.

As a result, we may end up with the wrong position and some app icons appear
on the wrong side of the separator.

To fix, account for all items before the separator that are currently
animating out.

Closes: https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/3966
Closes: https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/3799
Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1973>
(cherry picked from commit 6fe2c24e229d77b4ffde292f82390010d5ef519a)

11 months agoswipeTracker: Immediately flip delta in RTL locales
Florian Müllner [Thu, 20 Nov 2025 15:09:44 +0000 (16:09 +0100)]
swipeTracker: Immediately flip delta in RTL locales

The delta is currently flipped in a shared code path, after appending
the unmodified value to the event history. As a result, the calculated
final velocity for touchpad gestures is wrong in RTL locales.

Fix this by modifying the delta immediately when handling the events,
so that all other code operates on the correct values.

Closes: https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/8840
Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3967>
(cherry picked from commit a02835aacadbc14dc4350add3bae99c70e38f1b0)

11 months agoswipeTracker: Flip pan gesture velocity in RTL locales
Florian Müllner [Thu, 20 Nov 2025 14:51:23 +0000 (15:51 +0100)]
swipeTracker: Flip pan gesture velocity in RTL locales

Like the gesture delta, the final velocity needs to be flipped in
RTL locales, otherwise we end up cancelling out the gesture progress.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3967>
(cherry picked from commit 799a842d3a11b9d0df0e69d2d6a07ce66f926ba2)

11 months agoswipeTracker: Simplify finding previous point
Florian Müllner [Thu, 20 Nov 2025 13:34:21 +0000 (14:34 +0100)]
swipeTracker: Simplify finding previous point

We have findLastIndex() nowadays to search an array in reverse
direction.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3967>
(cherry picked from commit 8e29babca8adc677fcd5bc8457f497dd849ae884)

11 months agoshellDBus: Send an activation token for Accelerator(De)Activated
Sebastian Wick [Tue, 14 Oct 2025 20:36:16 +0000 (22:36 +0200)]
shellDBus: Send an activation token for Accelerator(De)Activated

This will be useful for the global shortcuts portal implementation.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3917>
(cherry picked from commit d0e8dc2b66f324f6d6526c5cd333c19359047a0a)

11 months agomain: Register session with GDM on startup
Adrian Vovk [Thu, 1 May 2025 22:34:52 +0000 (18:34 -0400)]
main: Register session with GDM on startup

When no monitor is connected, gnome-shell starts but never emits
`startup-prepared` nor `startup-complete`. As a result, GDM never
detects that the shell has launched and plymouthd remains running,
preventing the system from reaching graphical.target.

Ensure that registerSessionWithGDM() is called even when no monitor
is connected, so GDM can terminate plymouthd and allow the system to
reach graphical.target properly.

Part of https://gitlab.gnome.org/GNOME/gdm/-/merge_requests/285

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3708>
(cherry picked from commit 32a013304f8c507cb72a5419c7f4b7c553253520)

11 months agotimeLimitsManager: Clean up property description
Ignacy Kuchciński [Fri, 22 Aug 2025 13:49:35 +0000 (15:49 +0200)]
timeLimitsManager: Clean up property description

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3841>
(cherry picked from commit 872d6a168e07eaef4a17603705b4033dd7016b40)

11 months agooverview: Drop ::event connection in the cover pane
Carlos Garnacho [Wed, 8 Oct 2025 17:17:06 +0000 (19:17 +0200)]
overview: Drop ::event connection in the cover pane

We don't need an event handler on this widget to have it cover
other actors from receiving input.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3912>
(cherry picked from commit 9f2494856e24cffa984c33050b4f8e97497fb118)

11 months agoscreenshot: Don't special case resetting cursor
Carlos Garnacho [Wed, 8 Oct 2025 10:00:49 +0000 (12:00 +0200)]
screenshot: Don't special case resetting cursor

The case expressed in the comment does not seem to apply anymore,
we can reset the cursor as expected on every leave event.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3912>
(cherry picked from commit dc97d0a4d63b58806c53e631ea8d6217787f6a85)

11 months agosearch: Center name label vertically
Florian Müllner [Tue, 4 Nov 2025 15:14:37 +0000 (16:14 +0100)]
search: Center name label vertically

If all search results of the provider are shown, the "x more" label
is hidden, and the name label has more space than it needs.

Center the label vertically in that case to align with the icon.

Related: https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/8793
Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3951>
(cherry picked from commit 191f3d68513552d71ed4df8e1f50c30d408d441b)

11 months agotools: Update ci-run-eslint
Florian Müllner [Wed, 2 Jul 2025 14:32:09 +0000 (16:32 +0200)]
tools: Update ci-run-eslint

We are currently still using eslint 8.x which has been unsupported
for quite a while. Update the ci-run-eslint script to a verison
that uses the supported eslint 9.x.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3938>
(cherry picked from commit af7fe22ba454d563f7532a819e6ba253c834fb32)

11 months agoworkspaceThumbnails: Add missing return values to later handlers
Florian Müllner [Mon, 3 Nov 2025 11:50:34 +0000 (12:50 +0100)]
workspaceThumbnails: Add missing return values to later handlers

MetaLaters are source functions, and should therefore return a bool
to indicate whether the source should be removed or continue.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3950>
(cherry picked from commit 948f1a7eeb9ea0cbe4d54831d94db9bf4d0ce7cd)

11 months agojs: Always use SOURCE_CONTINUE/SOURCE_REMOVE in later handlers
Florian Müllner [Mon, 3 Nov 2025 11:49:12 +0000 (12:49 +0100)]
js: Always use SOURCE_CONTINUE/SOURCE_REMOVE in later handlers

The constants are more self-explanatory (and therefore readable)
then plain true/false.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3950>
(cherry picked from commit 9fc7f3f439ae95646882dd8b60d08003a38daaf5)

11 months agobuild/tests: Run shell tests in parallel
Marco Trevisan (Treviño) [Fri, 31 Oct 2025 04:04:04 +0000 (05:04 +0100)]
build/tests: Run shell tests in parallel

There's no reason why this is not the case, given that these tests are
running in completely separated environments, so they are safe to run in
parallel

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3943>
(cherry picked from commit a5cd8d9d5244953b45e3052dfd16ce6f5625e3e6)

11 months agooverviewControls: Disconnect signals on destruction
Marco Trevisan (Treviño) [Fri, 31 Oct 2025 04:00:35 +0000 (05:00 +0100)]
overviewControls: Disconnect signals on destruction

While we are not getting errors and the ControlsManger is normally always
alive, during destruction we could still get events from other objects
that are still alive, so disconnect them all

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3943>
(cherry picked from commit 741c6733eadcd8f2c4fe6e34afe2143688be805f)

11 months agooverviewControls: Bind state adjustment signals to parent lifetime
Marco Trevisan (Treviño) [Fri, 31 Oct 2025 03:57:50 +0000 (04:57 +0100)]
overviewControls: Bind state adjustment signals to parent lifetime

On tests shutdown we were sometimes getting this error:

  ** Message: 09:29:27.494: Shutting down GNOME Shell

  (gnome-shell:3728700): Gjs-CRITICAL **: 09:29:27.545:
  JS ERROR: TypeError: this._workspacesDisplay is undefined
  _update@resource:///org/gnome/shell/ui/overviewControls.js:599:37
  _initializeUI/<@resource:///org/gnome/shell/ui/main.js:279:14

Which after using the arrow function becomes:

  (gnome-shell:3731979): Gjs-CRITICAL **: 09:30:05.419:
  JS ERROR: TypeError: this._workspacesDisplay is undefined
  _update@resource:///org/gnome/shell/ui/overviewControls.js:599:37
  _init/<@resource:///org/gnome/shell/ui/overviewControls.js:343:67
  _initializeUI/<@resource:///org/gnome/shell/ui/main.js:279:14

This is because the state adjustement object lifetime is not bound to
the ControlsManager, and so we were potentially accessing to invalid
data

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3943>
(cherry picked from commit 935c5a0c540237ea7d1b8e38141577ac20669662)

11 months agoworkspaceThumbnail: Track later hiding drop placeholder
Marco Trevisan (Treviño) [Fri, 31 Oct 2025 03:48:21 +0000 (04:48 +0100)]
workspaceThumbnail: Track later hiding drop placeholder

When closing the shell during a relayout we are getting this error:

    (gnome-shell:2559407): Gjs-CRITICAL **: 06:57:21.765: Object St.Bin,
    has been already disposed — impossible to access it.
    This might be caused by the object having been destroyed from C code
    using something such as destroy(), dispose(), or remove() vfuncs.
    == Stack trace for context 0x60991609b710 ==
    #0 b   resource:///org/gnome/shell/ui/workspaceThumbnail.js:1334 (5e050636fb0 @ 17)
    #1 i   resource:///org/gnome/shell/ui/main.js:279 (30c932d102e0 @ 119)

This is because the later we added is running even when not needed (e.g
when the placeholder is not visible already), but also because we may
run the later callback after the parent has been destroyed.

Prevent this to happen, by tracking the later

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3943>
(cherry picked from commit 60a071052a0e547e813c6da6db8b4fc8d3149398)

11 months agostatus/dwellClick: Remove unused return value
Florian Müllner [Fri, 31 Oct 2025 17:42:54 +0000 (18:42 +0100)]
status/dwellClick: Remove unused return value

The method is never used as source function, so there is no reason
to return SOURCE_REMOVE.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3946>
(cherry picked from commit 9d904a804e73c97a1ecde406f395cd77a53f10e7)

11 months agoci: Fix artifacts path for tests job
Marco Trevisan (Treviño) [Fri, 31 Oct 2025 04:25:04 +0000 (05:25 +0100)]
ci: Fix artifacts path for tests job

We (I) changed the test job to use a different path in commit 342d7ab34,
but the artifacts path was not adjusted :(

Fixes: 342d7ab34a ("ci: Start with a fresh build dir to ensure test dependencies are correct")
Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3945>
(cherry picked from commit 72b8c9044d9d8145014852ee2e7962396ff46ba2)

11 months agobrightnessManager: Use slider as bias when auto brightness is being used
Sebastian Wick [Mon, 20 Oct 2025 11:38:37 +0000 (13:38 +0200)]
brightnessManager: Use slider as bias when auto brightness is being used

The code previously tried to ensure that the sliders were disabled when
auto brightness was active, and determine the brightness just from the
auto brightness target we get from g-s-d.

It turns out that users do want to still have some control over the
brightness, even if auto brightness is active.

The slider is now being used as a bias for the auto brightness target
instead.

This also means that we can drop the BrightnessScale::locked property.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3935>
(cherry picked from commit 157f6124d894143c7ce82559d4b845af07462928)

11 months agobrightnessManager: Propagate any attempted brightness change
Sebastian Wick [Thu, 30 Oct 2025 10:43:19 +0000 (11:43 +0100)]
brightnessManager: Propagate any attempted brightness change

The BrightnessScale was trying to be smart by not notifying changes of
its value when an action on it (stepUp, stepDown, cycleUp, set value)
resulted in no change.

It turns out that users do want to see an OSD even when their action
resulted in no change.

Always notify about attempted changes instead.

Closes: https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/8770
Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3941>
(cherry picked from commit aaef85ecbd558fec8aa138678fe859de930d42dd)

11 months agologinManager: Use systemd session auto object to get session ID
Alessandro Bono [Thu, 30 Oct 2025 10:47:17 +0000 (11:47 +0100)]
loginManager: Use systemd session auto object to get session ID

Relying on the Display property is buggy when the gdm user spawns more than
one gnome-shell instance.
```
$ loginctl
SESSION  UID USER   SEAT  LEADER CLASS         TTY   IDLE SINCE
     11   42 gdm    -     11778  manager-early -     no   -
    c20   42 gdm    seat0 34313  greeter       tty1  yes  17h ago
    c21   42 gdm    -     34938  greeter       -     no   -
    c22   42 gdm    -     35693  greeter       -     no   -
```

From the logs:
```
$ journalctl -b | grep "Will monitor"
[...]
Oct 29 15:14:59 gnome-shell[34961]: Will monitor session c20
Oct 29 15:22:57 gnome-shell[35716]: Will monitor session c20
Oct 29 15:22:58 gnome-shell[35716]: Will monitor session c20
```

Use the systemd session auto object for getting the session id. We can't return
directly the session proxy created from it because it won't emit signals. From
the documentation[1]:
```
Signals are only emitted on objects referencing a specific session ID not on the
"/org/freedesktop/login1/session/self" or "/org/freedesktop/login1/session/auto"
convenience objects, as they can only be dereferenced relative to a method caller.
```

[1] https://www.freedesktop.org/software/systemd/man/latest/org.freedesktop.login1.html

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3942>
(cherry picked from commit 5db3a2b7bcfebdcc71038df890ae44308c98b95e)

11 months agologinManager: Improve log
Alessandro Bono [Thu, 30 Oct 2025 10:47:12 +0000 (11:47 +0100)]
loginManager: Improve log

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3942>
(cherry picked from commit c21853138be403bcd46e1439503b6656e408316d)

11 months agoosk-layouts: Drop comma key from de-extended and at-extended layouts
Sebastian Keller [Wed, 29 Oct 2025 10:09:02 +0000 (11:09 +0100)]
osk-layouts: Drop comma key from de-extended and at-extended layouts

The row containing that key was one key too long, which was causing
misalignment. The comma key is not shown in the us-extended layout
either and is available via long press on the dot key or via ?123,
making it the best candidate to remove from these layouts.

Closes: https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/8756
Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3940>
(cherry picked from commit f076b775bbbe1f73307311c3c971ca8a12e67bf3)

11 months agoRevert "status/keyboard: Track ::layout-layout-group-changed for changes"
Sebastian Keller [Tue, 28 Oct 2025 22:22:26 +0000 (23:22 +0100)]
Revert "status/keyboard: Track ::layout-layout-group-changed for changes"

This reverts commit e8d73262c73246205e8f7887d99aeb2356cfa89e.

The commit was causing freezes when changing layouts in some situations
and not all of these were adressed by f643915b, such as when switching
from the 3rd to the 4th layout using a xkb shortcut in the X11 session
with 4 layouts.

It was also breaking the order of switching layouts using modifier-only
xkb shortcuts to switch to the next group, which it caused to advance
multiple groups because of the shortcut being handled via both
_modifiersSwitcher() and _layoutGroupChanged().

Further it was possible for _layoutGroupChanged() to trigger an error
due to the locale layout added by _buildGroupStrings() at the end of the
xkb layout list being accessible via the xkb shortcuts. That layout was
not present in _inputSources, leading to "is" being undefined.

Reopens: https://gitlab.gnome.org/GNOME/mutter/-/issues/3926
Closes: https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/8738
Related: https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3930
Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3939>
(cherry picked from commit d6123a003afc9665e7b0067a46dc93b19ea52c07)

11 months agotools: Symlink node_modules in project root
Florian Müllner [Tue, 21 Oct 2025 18:12:59 +0000 (20:12 +0200)]
tools: Symlink node_modules in project root

NPM assumes quite strongly that it manages the project as a
whole and its package/lock files are located in the project
root.

While we somehow managed to keep the npm tooling in a subfolder,
this comes at the cost of breaking imports of additional modules.

This will become relevant when we update eslint to a supported
version, as we want to keep using the `junit` formatter in CI,
which has now been split out into a separate module.

So bite the bullet and make the node_modules folder available in
the project root.

On the plus side, having the node_modules folder in the project
root allows language servers in IDEs/editors to pick it up.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3929>
(cherry picked from commit 11a5aad53e2b462d7cac70b26515d9b7f4bb0466)

11 months agotools: Pin git node modules
Florian Müllner [Thu, 23 Oct 2025 12:06:08 +0000 (14:06 +0200)]
tools: Pin git node modules

Both changes in the config (like new/changes rules) and the eslint wrapper
(like updating to eslint 9.x) could require changes on the shell side, and
therefore require conscious update rather than randomly breaking the CI.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3929>
(cherry picked from commit b0957a21d73a55e0a994a4cb890ee7a55edbea6b)

11 months agokeyboard: Don't move window when it got unmanaged during shift animation
Sebastian Keller [Sat, 25 Oct 2025 11:03:55 +0000 (13:03 +0200)]
keyboard: Don't move window when it got unmanaged during shift animation

When a window with a text-entry at the bottom that had triggered the OSK
and was shifted up to avoid overlapping the OSK is closed right after
losing keyboard focus, this results in a crash. The focus loss triggers
the animation to move the window actor back into its original position,
which moves the underlying window when finished. That however will fail
when the window has been unmanaged and some of the underlying resources
have already been destroyed while the animation was playing.

Closes: https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/8752
Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3933>
(cherry picked from commit 4900aad2deab7398e69b1a57a38285fa73974c0f)

11 months agopanel: Fix addExternalIndicator() JSDoc comment
ClarityStorm [Mon, 27 Oct 2025 23:12:44 +0000 (23:12 +0000)]
panel: Fix addExternalIndicator() JSDoc comment

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3937>
(cherry picked from commit 71694d12a95c0560d4875fd36c55840c57e334c9)

11 months agoci: Upgrade ci-fairy
Florian Müllner [Mon, 20 Oct 2025 12:48:18 +0000 (14:48 +0200)]
ci: Upgrade ci-fairy

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3924>
(cherry picked from commit a367863afe5a0edc849766d8334bea1c9989e73b)

11 months agoci: Drop check-merge-request job
Jonas Ådahl [Sat, 25 Oct 2025 09:08:35 +0000 (11:08 +0200)]
ci: Drop check-merge-request job

The job is broken due to permission changes in GitLab, and it seems what
is checked for is now the default, making the job less useful, thus drop
it.

Related: https://gitlab.freedesktop.org/freedesktop/ci-templates/-/issues/81
Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3932>
(cherry picked from commit d3e39a00e56050e52338fa9f09e257cda01451f8)

11 months agosystemActions: Don't log error when cancelled
Florian Müllner [Tue, 21 Oct 2025 22:57:26 +0000 (00:57 +0200)]
systemActions: Don't log error when cancelled

If the logout/reboot/shutdown actions are available, we expect them
to succeed. Unfortunately that changed in the light of systemd
inhibitors (that we don't know about in the shell, and that prevent
those actions now).

While it would be good to fix the underlying issue, we can at least
improve the error reporting in that case and not log the error when
the operation was cancelled: We don't know the underlying reason,
unlike gnome-session which should have logged a more helpful message.

Closes: https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/8749
Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3927>
(cherry picked from commit d3f3f4e80d338133a2083dd5c267ed456b86303d)

11 months agojs: Use logErrorUnlessCancelled() helper
Florian Müllner [Wed, 22 Oct 2025 01:30:41 +0000 (03:30 +0200)]
js: Use logErrorUnlessCancelled() helper

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3927>
(cherry picked from commit f1cd8520b7c7f0f9ee2dbb57623bba972f2cfd2c)

11 months agoerrorUtils: Add logErrorUnlessCancelled() helper
Florian Müllner [Wed, 22 Oct 2025 00:59:20 +0000 (02:59 +0200)]
errorUtils: Add logErrorUnlessCancelled() helper

It is quite common to handle errors by ignoring them in case of
CANCELLED, and otherwise log them via logError().

Add a small helper method that implements that behavior, including
if the original error is wrapped in a Gio.DBusError.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3927>
(cherry picked from commit b4b739dc5193cab1e6fc48ce1e9d631a7aa2c1f0)

11 months agokeyboardManager: Simplify loop
Florian Müllner [Fri, 24 Oct 2025 13:14:16 +0000 (15:14 +0200)]
keyboardManager: Simplify loop

We can iterate over ids directly instead of using an index.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3931>
(cherry picked from commit d1f8c00d2f47d440905a0af3253589cbd0822a3a)

11 months agokeyboardManager: Minor style fix
Florian Müllner [Fri, 24 Oct 2025 12:06:30 +0000 (14:06 +0200)]
keyboardManager: Minor style fix

Local variables are already limited by their scope, so there is
no need to mark them as private with the '_' prefix.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3931>
(cherry picked from commit eb7996257f5016bfd84364c9070686ec8e265058)

11 months agokeyboardManager: Fix typo in comment
Florian Müllner [Fri, 24 Oct 2025 13:37:16 +0000 (15:37 +0200)]
keyboardManager: Fix typo in comment

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3931>
(cherry picked from commit 315f6da42e62e3c32592c7817a75e6889034ddb7)

11 months agonetworkAgent: Do not remove child watch source
Michael Catanzaro [Mon, 20 Oct 2025 21:26:34 +0000 (16:26 -0500)]
networkAgent: Do not remove child watch source

The child watch source is the only thing that reaps the child process.
We cannot remove it until it fires or the child will remain a zombie.
So, just leave the source attached. Trying to remove it does not seem
easy, and I don't see any need; we expect the child process to exit
quickly, so this doesn't seem harmful.

Closes: https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/7083
Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3926>
(cherry picked from commit 961a7d721f3e4db9be6df958b10ba98955138cae)

11 months agoosk-layout: Add extended layouts for German and German (Austria)
Leonidas Adaktylos [Sun, 19 Oct 2025 17:58:28 +0000 (19:58 +0200)]
osk-layout: Add extended layouts for German and German (Austria)

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3923>
(cherry picked from commit 578911353440c24c998a9c056193df16a2d88283)

11 months agologinDialog: Sort session list by name
Balló György [Fri, 17 Oct 2025 17:42:21 +0000 (19:42 +0200)]
loginDialog: Sort session list by name

Instead of sorting the available sessions by their ID, sort them by their
name. This ensures that the list is sorted based on the system locale.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3920>
(cherry picked from commit b86fc53821169313dc6bfe9985902d5e84397010)

11 months agoFixed "compoment" typo in the gnome-shell README.md
Leonidas Adaktylos [Mon, 20 Oct 2025 18:09:35 +0000 (20:09 +0200)]
Fixed "compoment" typo in the gnome-shell README.md

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3925>
(cherry picked from commit 47fc61cb05665eac561ad28323bbef33091058a2)

11 months agodnd: Don't try to connect to transition when animations are disabled
Sebastian Keller [Sun, 19 Oct 2025 16:47:31 +0000 (18:47 +0200)]
dnd: Don't try to connect to transition when animations are disabled

When animations are disabled, the ease has finished before the
get_transition() call, causing the latter to return null, which will
result in an error message when connected to.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3922>
(cherry picked from commit f44f87c8e166d96c97e93c9f008ccf64aa55520a)

11 months agostatus/network: Update indicator icon on connectivity changes
Antoine Lassagne [Fri, 10 Oct 2025 12:55:40 +0000 (14:55 +0200)]
status/network: Update indicator icon on connectivity changes

When there is no active main connection or it uses a device type we do
not handle, the indicator icon and its visibility depend on the global
connectivity.

However we currently don't update the icon on connectivity changes,
with the result that we sometimes show the fallback connection icon
when the network is in fact disconnected.

To fix this, update the icon whenever the (global) connectivity changes.

Closes: https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/7357
Closes: https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/8549
Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3910>
(cherry picked from commit a999193c06ad91a40d9eae5f01c2ccaf9455c227)

11 months agomessageList: Fall back to generic policy if media message has no app
Sebastian Keller [Fri, 17 Oct 2025 18:05:53 +0000 (20:05 +0200)]
messageList: Fall back to generic policy if media message has no app

That way the notification at least still follows the global settings.

Closes: https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/8740
Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3921>
(cherry picked from commit d3ade5add3fca79187694e7b0757bccd066fe7f7)

11 months agoUpdate Indonesian translation
Andika Triwidada [Mon, 24 Nov 2025 12:41:20 +0000 (12:41 +0000)]
Update Indonesian translation

11 months agoUpdate German translation
Jürgen Benvenuti [Sat, 22 Nov 2025 23:32:03 +0000 (23:32 +0000)]
Update German translation

11 months agoUpdate Romanian translation
Antonio Marin [Tue, 11 Nov 2025 13:50:44 +0000 (13:50 +0000)]
Update Romanian translation

11 months agoUpdate Chinese (Taiwan) translation
Cheng-Chia Tseng [Mon, 10 Nov 2025 13:42:33 +0000 (13:42 +0000)]
Update Chinese (Taiwan) translation

12 months agoUpdate Turkish translation
Emin Tufan Çetin [Wed, 5 Nov 2025 19:46:14 +0000 (19:46 +0000)]
Update Turkish translation

12 months agoUpdate Romanian translation
Antonio Marin [Fri, 24 Oct 2025 11:53:25 +0000 (11:53 +0000)]
Update Romanian translation

12 months agoUpdate Romanian translation
Antonio Marin [Thu, 23 Oct 2025 10:00:10 +0000 (10:00 +0000)]
Update Romanian translation

12 months agoUpdate Greek translation
Efstathios Iosifidis [Sat, 18 Oct 2025 19:45:55 +0000 (19:45 +0000)]
Update Greek translation

12 months agoUpdate Dutch translation
Nathan Follens [Fri, 17 Oct 2025 22:26:00 +0000 (22:26 +0000)]
Update Dutch translation

12 months agoUpdate German translation
Christian Kirbach [Fri, 17 Oct 2025 10:46:24 +0000 (10:46 +0000)]
Update German translation

12 months agoBump version to 49.1
Florian Müllner [Tue, 14 Oct 2025 20:49:10 +0000 (22:49 +0200)]
Bump version to 49.1

Update NEWS.

12 months agomessageList: Make media messages follow notification policy
Florian Müllner [Wed, 1 Oct 2025 18:19:14 +0000 (20:19 +0200)]
messageList: Make media messages follow notification policy

Unlike regular notifications, media messages are shown unconditionally
for any active MPRIS player. In the past that was uncontroversial, but
now that media messages are shown on the lock screen as well, there is
a privacy concern.

To address this, make media messages follow the notification policy
of the corresponding app (if specified) or the general notification
settings.

Closes: https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/8600
Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3896>

12 months agogdm: Improve some accessibility icons
Jakub Steiner [Fri, 10 Oct 2025 10:46:56 +0000 (12:46 +0200)]
gdm: Improve some accessibility icons

Closes https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/8716

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3909>

12 months agomessageTray: Never close a notification banner that is about to show
Marco Trevisan (Treviño) [Wed, 8 Oct 2025 03:37:57 +0000 (05:37 +0200)]
messageTray: Never close a notification banner that is about to show

If a new notification is pushed (or the same is updated) in a very short
time GNOME shell may only show the last notification (or none).

This is because since commit 2801d0bf a notification that is about to
show (so in SHOWING state) may be considered expired, given that the
notification timeout won't be set until the show animation has
completed.

Thus, only consider the notification as expired when the notification is
in the shown state, but not in the showing one.

Closes: https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/6529
Fixes: 2801d0bfe3 ("messageTray: Close SHOWING banner when its notification is destroyed")
Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3905>

12 months agoUpdate Friulian translation
Fabio Tomat [Tue, 14 Oct 2025 15:25:55 +0000 (15:25 +0000)]
Update Friulian translation

12 months agoosk-layouts: Do not use U+25CC in in+bolnagri output strings
Mike FABIAN [Fri, 10 Oct 2025 10:05:14 +0000 (12:05 +0200)]
osk-layouts: Do not use U+25CC in in+bolnagri output strings

These should be just in the key labels.

Closes: https://gitlab.gnome.org/GNOME/gnome-shell/issues/8719
Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3911>

12 months agonotificationDaemon: Do not send activation event multiple times
Marco Trevisan (Treviño) [Tue, 7 Oct 2025 18:08:39 +0000 (20:08 +0200)]
notificationDaemon: Do not send activation event multiple times

When a FDO notification is updated we reuse the previous instance,
however we do not care about disconnecting the default activation signal
and thus we may end up emitting the same multiple times, even in the
case the updated notification has no action at all.

So track the signal connections.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3904>

12 months agoUpdate French translation
Jean-Marc TISSIERES [Fri, 10 Oct 2025 10:25:52 +0000 (10:25 +0000)]
Update French translation

12 months agoscreenshot: Make screenshot tooltips label actors for their widgets
Lukáš Tyrychtr [Thu, 9 Oct 2025 14:27:55 +0000 (16:27 +0200)]
screenshot: Make screenshot tooltips label actors for their widgets

This ensures that the buttons have a label from their tooltip if we do not
have another label actor already (like from the icon label buttons).

Because no button using a toolltip in this UI has a label on its own,
this is not checked.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3908>

12 months agonotificationDaemon: Always set the FDO notification closed reason
Marco Trevisan (Treviño) [Thu, 9 Oct 2025 11:56:27 +0000 (13:56 +0200)]
notificationDaemon: Always set the FDO notification closed reason

The undefined closed reason according to the API is 4, but we were
potentially returning an unsupported value (0).

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3907>

12 months agodialog: Do not ellipsize and wrap the list title
Marco Trevisan (Treviño) [Fri, 3 Oct 2025 02:52:03 +0000 (04:52 +0200)]
dialog: Do not ellipsize and wrap the list title

The dialog list title section may contain a long string, so we should
not cut it.

This is currently happening in 49 (at least using the Italian locale).

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3898>

13 months agostatus/keyboard: Track ::layout-layout-group-changed for changes
Carlos Garnacho [Tue, 30 Sep 2025 14:09:47 +0000 (16:09 +0200)]
status/keyboard: Track ::layout-layout-group-changed for changes

This may happen under the hood without UI interaction through modifiers
expressed in xkb-options to switch to specific layouts. Make this
actually have an effect in the UI bits, and update the selected layout
if these changes happen without further GNOME Shell involvement.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3895>

13 months agoUpdate Bulgarian translation
twlvnn kraftwerk [Wed, 8 Oct 2025 12:37:12 +0000 (12:37 +0000)]
Update Bulgarian translation

13 months agoUpdate Catalan translation
Jordi Mas [Mon, 6 Oct 2025 17:57:17 +0000 (19:57 +0200)]
Update Catalan translation

13 months agotheme: Uniform the style of the dialog warnings
Marco Trevisan (Treviño) [Fri, 3 Oct 2025 02:37:49 +0000 (04:37 +0200)]
theme: Uniform the style of the dialog warnings

The end session dialog is now using a new style for the warning messages
but this style is not re-used by other dialogs that have messages with a
similar role.

So be consistent, and use same style for all the dialogs that are
showing a warning or an info message, and in particular
 - Keyring dialog error messages
 - Polkit dialogs error and info messages
 - Conflicting dialog warning message

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3897>

13 months agoUpdate Italian translation
Davide Ferracin [Mon, 6 Oct 2025 03:07:18 +0000 (03:07 +0000)]
Update Italian translation

13 months agost/theme-context: Warn instead of crashing on unsupported accent colors
Daniel van Vugt [Fri, 26 Sep 2025 06:36:41 +0000 (14:36 +0800)]
st/theme-context: Warn instead of crashing on unsupported accent colors

For example, Ubuntu's "brown". This is patched into gnome-shell for Ubuntu
but if you forget the patch then it's not worthy of a crash. Just pick a
colour and issue a warning.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3892>

13 months agopanelMenu: Remove invalid last argument to PopupMenu constructor
SimonMaracine [Sun, 28 Sep 2025 17:56:36 +0000 (20:56 +0300)]
panelMenu: Remove invalid last argument to PopupMenu constructor

Fixes: 4debedb275 ("Application Menu: add support for showing GApplication actions")
Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3894>

13 months agonotificationDamon: Always send the activation token
Marco Trevisan (Treviño) [Fri, 26 Sep 2025 04:29:16 +0000 (06:29 +0200)]
notificationDamon: Always send the activation token

In case of FDO notifications, we may receive a notification coming from
non-desktop-applications (e.g. gsd does that), but in any case when
activating an action we should always provide back the activation-token.

So send the startup notification ID in any case, even if the appId is
unset (in fact get_startup_notify_id() uses a nullable parameter for a
reason since GNOME/glib@6210708f).

In wayland this more than enough, while in X11 we could have used the
gnome-shell desktop file as fallback, but that's gone for good now!

Fixes: bb73bf5
Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3891>

13 months agoUpdate Catalan translation
Jordi Mas [Thu, 25 Sep 2025 08:29:52 +0000 (10:29 +0200)]
Update Catalan translation

13 months agodata: Do not bundle org.freedesktop.Application interface
Florian Müllner [Wed, 24 Sep 2025 18:43:03 +0000 (20:43 +0200)]
data: Do not bundle org.freedesktop.Application interface

It is only needed at build time for gdbus-codegen.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3889>

13 months agodata: Remove unused D-Bus interface
Florian Müllner [Wed, 24 Sep 2025 18:43:03 +0000 (20:43 +0200)]
data: Remove unused D-Bus interface

The shell no longer uses the net.hadess.SensorProxy service directly,
but only via mutter API.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3889>

13 months agooverviewControls: Ensure ws thumbnails are expanded before fading in
Noam Raz [Wed, 24 Sep 2025 08:49:43 +0000 (11:49 +0300)]
overviewControls: Ensure ws thumbnails are expanded before fading in

The current logic in `_updateThumbnailsBox` updates the expand fraction
only after the fade animation completes, rendering the fade-in
transition broken: the thumbnails fade in, but they have a height of 0
until after the animation, when they jarringly "pop" into place. This
abrupt transition is observable when exiting search in the overview with
multiple active workspaces.

Instead, split up the logic a bit to make sure the thumbnails always
appear fully-expanded during the animation: when animating in, the
`expand-fraction` is set _before_ the animation starts, and when
animating out it is set after.

This logic should make all workspace thumbnail state transitions behave
correctly:

- The thumbnails still expand/collapse smoothly when `should-show`
  changes because `_updateThumbnailsBox` is called only when that
  transition completes.

- Transitions into/out of search just fade the thumbnails because they
  are always expanded during the animation.

- https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/7668 is avoided
  because `expand-fraction` is still set to 1 by `_updateThumbnailsBox`
  when revealing the thumbnails.

- The thumbnails still have an `expand-fraction` of 0 when hidden,
  carrying over the fixes from 9bf550da8 ("overviewControls: Set
  expandFraction for ws thumbnails to 0 when hidden").

Closes: https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/7985
Fixes: c576f82bd ("overviewControls: Make sure thumbnails expandFraction is bound to visibility")
Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3888>

13 months agogdm/authPrompt: Fix key focus handling on choice list
Marco Trevisan (Treviño) [Fri, 22 Aug 2025 13:08:23 +0000 (15:08 +0200)]
gdm/authPrompt: Fix key focus handling on choice list

When a choice list widget is prompted in GDM we call updateSensitivity()
but this does not act on the currently visible authentication widget but
rather on the text entry all the times.

And this causes that when a choice list is shown we always set the key
focus to the (hidden) text entry.

This implies that when the list is finally shown, moving the arrow keys
leads makes the entry context menu to be shown instead of being able to
navigate through the entries.

So, make updateSensitivity use the currently visible authorization
widget instead and use it to control the sensitivity of the choice list

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3849>

13 months agoslider: Use the sprite of the touch event, not the pointer
Daniel van Vugt [Tue, 23 Sep 2025 06:12:56 +0000 (14:12 +0800)]
slider: Use the sprite of the touch event, not the pointer

startDragging() starts with:

  const sprite = backend.get_sprite(global.stage, event);
  this._sprite = sprite;

but then vfunc_touch_event() would only compare this._sprite to:

  sprite = backend.get_pointer_sprite(global.stage);

which never matched. And so _endDragging() was never called and
the grab was never dismissed, effectively freezing the shell.

Closes: https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/8660
Fixes: c206ec693 ("slider: Use Clutter.Sprite for pointing focus accounting")
Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3887>

13 months agoUpdate Portuguese translation
Hugo Carvalho [Mon, 22 Sep 2025 14:20:23 +0000 (14:20 +0000)]
Update Portuguese translation

13 months agoUpdate Turkish translation
Sabri Ünal [Sat, 20 Sep 2025 15:33:17 +0000 (15:33 +0000)]
Update Turkish translation

13 months agoUpdate Serbian (Latin) translation
Милош Поповић [Thu, 18 Sep 2025 07:36:48 +0000 (07:36 +0000)]
Update Serbian (Latin) translation

13 months agoUpdate Serbian translation
Милош Поповић [Thu, 18 Sep 2025 07:35:36 +0000 (07:35 +0000)]
Update Serbian translation

13 months agoUpdate Uighur translation
Abduqadir Abliz [Wed, 17 Sep 2025 17:07:04 +0000 (17:07 +0000)]
Update Uighur translation

13 months agoUpdate Occitan translation
Quentin PAGÈS [Tue, 16 Sep 2025 17:40:21 +0000 (17:40 +0000)]
Update Occitan translation

13 months agoUpdate Kabyle translation
BoF ButterflyOfFire [Tue, 16 Sep 2025 17:19:00 +0000 (17:19 +0000)]
Update Kabyle translation

13 months agoUpdate Occitan translation
Quentin PAGÈS [Mon, 15 Sep 2025 18:29:25 +0000 (18:29 +0000)]
Update Occitan translation

13 months agoBump version to 49.0
Florian Müllner [Sat, 13 Sep 2025 21:29:32 +0000 (23:29 +0200)]
Bump version to 49.0

Update NEWS.

13 months agobuild: Depend on GLib 2.86.0
Marco Trevisan (Treviño) [Mon, 1 Sep 2025 02:05:23 +0000 (04:05 +0200)]
build: Depend on GLib 2.86.0

As per previous change we now rely on a GLib version in which GioUnix
DesktopAppInfo implementation provides all the methods, so let's bump
the glib (actually gio) dependency for that.

As we need to be sure that the shell's typelib is rebuilt against newer
Gio, or updating GLib before than the shell would break us.

See: https://gitlab.gnome.org/GNOME/glib/-/issues/3776#note_2545887
Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3860>